Portions of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever. Sun, Sun Microsystems, the Sun logo, Java, JavaBeans and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
This invention relates to computer systems, and more particularly to collaboration between users of computer systems.
Computers can be interconnected via a local area network (LAN), a wide area network (WAN) and/or the Internet, for example. In a typical network, a computer that runs client software is a client computer, or client. A computer that runs server software is a server computer, or server. The server provides resources that can be accessed and shared by client computer users on the network based on requests that are sent to the server by a user.
Initially, users worked independently of other users. However, it has become desirable for users to share, or collaborate, in the development and review of information. For example, users may wish to view changes (e.g., simultaneously with the changes) and make updates to a graphic presentation. However, the client software that is widely used to access the Internet does not allow users to collaborate (i.e., is not collaborative-aware). As this software can also be used in an internal network configuration (i.e., an Intranet), it would be desirable for the software to allow user collaboration.
A user typically accesses the Internet using a software package referred to as a browser. A browser provides a graphic user interface (GUI) for displaying pages of information that a server sends to the client via the Internet. A page, or Web page, is typically defined using Hypertext Markup Language (HTML) statements that specify the pages GUI elements. A browser parses the HTML statements to generate and display the Web page in the browser""s display area. The browser further provides a mechanism for the user to input information and/or submit a request which the browser forwards, via the Internet, to the appropriate Internet server. When a response is received at the user""s computer, the browser parses the response (e.g., an HTML, document that defines a Web page).
There is currently no interaction available between users that are viewing pages in a general-purpose browser. It is not possible, for example, to determine the identity of other users currently viewing the same page. If a user was aware that a second user is also viewing the same page, the user might want to interact with the other user, perhaps regarding the page that they both are viewing. For example, users may wish to converse with each other using an electronic mail (email) application or chat software.
Email and chat software allow a user to send messages to other users over the Internet, for example. The message is received by a server and forwarded to the recipient. To chat with another user, a user must run client chat software and interact with a chat server that interprets chat commands. Where, for example, a chat command requests that a message be sent to another chat participant, the chat server forwards the message to the intended recipient.
One example of a chat environment is the xe2x80x9cwww.geocities.comxe2x80x9d chat environment. To begin chatting, a user must first enter the requested user information (i.e., a name) and then select a chat category from a set of pre-determined categories (e.g., xe2x80x9cArts and Literaturexe2x80x9d and xe2x80x9cEntertainmentxe2x80x9d) and a room (xe2x80x9cAthensxe2x80x9d, xe2x80x9cBroadwayxe2x80x9d and xe2x80x9cParisxe2x80x9d) from a set of pre-determined rooms within the selected chat category. The chat environment user can move between rooms by selecting another of the pre-determined rooms within the selected category. Within each room, the user can see a list of users within that room and a list of all of the users within the selected category.
In the chat environment (e.g., the xe2x80x9cwww.geocities.comxe2x80x9d chat environment), the user is limited to a predetermined set of categories and chat rooms within each of the categories. It is not possible for the user to exit the chat environment such that the user""s chat environment name follows the user to another environment (e.g., the xe2x80x9cwww.yahoo.comxe2x80x9d Web site). To enter another chat environment, a user must first enter the requested information at the new environment.
General-purpose browsers do not identify those users that are concurrently viewing Web pages. That is, it is currently not possible to use a general-purpose browser software application to identify concurrent users of a Web page for collaboration.
There are special-purpose browsers that have been developed for a collaborative environment. Users that wish to collaborate must use one of these special-purpose browsers. There are obvious disadvantages to using a special-purpose browser particularly given that the majority of Internet users run one of the popular general-purpose browsers (e.g., Netscape""s Navigator, Communicator, etc. or Microsoft""s Internet Explorer).
FIG. 1 provides an example of a special-purpose browser developed by PlaceWare, Inc., Mountain View, Calif. Browser 102 consists of areas 104, 106 and 108. Area 104 displays HTML-defined Web pages. Area 108 provides a list of collaborative-application rooms, or Web pages. One of the xe2x80x9cLobbyxe2x80x9d, xe2x80x9c1xe2x80x9d, xe2x80x9c2xe2x80x9d and xe2x80x9c3xe2x80x9d icons in area 108 can be selected by the user to display a collaborative-application room. The Web pages that are associated with xe2x80x9cLobbyxe2x80x9d, xe2x80x9c1xe2x80x9d, xe2x80x9c2xe2x80x9d and xe2x80x9c3xe2x80x9d support a specific collaboration application. The Web page is displayed in area 104. Area 106 contains a list of users that are currently viewing the page that is being displayed in area 104.
Collaboration is limited to one of the specific collaboration applications represented by the xe2x80x9cLobbyxe2x80x9d, xe2x80x9c1xe2x80x9d, xe2x80x9c2xe2x80x9d and xe2x80x9c3xe2x80x9d icons. That is, to be able to view the user list in area 106 and to collaborate with a user in the user list, it is necessary in browser 102 to access one of the xe2x80x9cLobbyxe2x80x9d, xe2x80x9c1xe2x80x9d, xe2x80x9c2xe2x80x9d and xe2x80x9c3xe2x80x9d collaboration application Web pages. It is not possible, for example, to collaborate with another user that is viewing another Web page (e.g., a non-collaboration Web page). For example, browser 102 does not identify the users that are viewing the xe2x80x9cwww.yahoo.comxe2x80x9d Web page.
Another special-purpose browser approach, provided in a product called WebCanal by Inria (France""s National Institute for Research in Computer Science and Control), requires that one browser be the master browser and all of the other browsers be slave browsers. When the master browser changes Web pages, the slave browsers"" Web page is changed to reflect the master browser""s Web page. Thus, the master browser controls what the slave browsers view. The slave browser does not navigate through Web pages independent of the master browser.
Embodiments of the present invention incorporate a facility to make a user aware of other users that are currently viewing the same browser page within any general or special-purpose browser. Functionality is also provided in the browser to allow a user to initiate a collaboration operation with other users on the same Web page.
A user provides user information to a registry via a registration process. The registry retains the information supplied by the user. The registry is further updated to identify the page that is currently being viewed by a user. The user can access a collaboration interface to view a list of users that are currently viewing the same page as the user. The collaboration interface further allows the user to select a collaboration operation to collaborate with one or more users that are currently viewing the same page.
In embodiments of the invention, the collaboration interface is contained within a portion of the browser. The collaboration interface is implemented as an application program (e.g., an applet) that can run in any of the currently available browsers (e.g., any general-purpose or special-purpose browser). The collaboration interface accepts input entered within an input field of the interface and processes it accordingly. A request to change pages causes the registry to be updated to reflect the new page. The new page is displayed within a window (e.g., a frame) within the browser window. If the input is a request to initiate a collaborative operation, the collaboration interface initiates the operation.
During the registration process, a user provides registration information that is stored in the registry. For example, the user can supply a name, address and email address that is stored in the registry. Other information can be used as a supplement and/or replacement for this information. The collaboration applet, the page that contains the applet is sent back to user""s browser. The applet is initiated on the user""s computer and the applet""s interface is displayed within the browser.
The applet interface includes an area for specifying a new page. For example, the user can identify a new page by supplying the page""s uniform resource locator (URL).